Current real-time renderers use a rasterization technique known as shadow mapping to produce fast shadows. During shadow mapping, the scene is rendered from the point of view of the light source and a depth value is saved at each pixel that indicates the distance to the closest piece of geometry visible to that pixel. When the scene is rendered from the point of view of the camera, each screen pixel is projected into the shadow map and the distance from that point to the light source computed. A depth comparison with the value stored in the shadow map determines if the screen pixel is the closest point visible to the light source and thus whether the screen pixel is considered to be in shadow or not.
This technique produces fast shadows but may suffer from aliasing. For example, perspective aliasing may occur when the sampling frequency of the shadow map (e.g. rendered from the light source) is too low when sampled in the final image (e.g. rendered from the camera) along surfaces distant from the light source but close to the camera. This may result in shadow edges that appear blocky due to false positives or false negatives.
As another example, projection aliasing may occur when a light source is shining nearly perpendicular to a given surface. This may result in shadow samples being spread across the surface causing spiky shadow edges. In general, aliasing may be expected when the local neighborhood of an object sampled by a camera pixel is partially occluded from the light source.
There is thus a need for addressing these and/or other issues associated with the prior art.